home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Compendium Deluxe 1
/
LSD Compendium Deluxe 1.iso
/
a
/
disk
/
misc
/
deled.lha
/
DeluxeEditor.doc
< prev
Wrap
Text File
|
1990-09-13
|
28KB
|
636 lines
**********************************************************************
* Deluxe Editor Version v1.8 beta (C)opyright 1992 Cath of LSD *
*--------------------------------------------------------------------*
* With those little extras that appealed at the time q8-) *
* Dedicated to Bootblock checksums everywhere *
*--------------------------------------------------------------------*
* Written in Lattice 'C' 5.10a,prepared in CygnusEd Pro *
* Uses Reqtools.library (C)Nico Francis 1992. (Very good) *
**********************************************************************
__/| ____/\__ ____/\
!o | !o Vo .\\
||| |___|: |____|| | \\\\:-
-:|||: | |___ :|: | .\\
||. | |sc | o|. | /
|______ |________| ______/
~~~~~~~\|PRESENTS|/~~~~~~
Deluxe Editor 1.8 beta
Title - Where to Start?
Index
1. Overview
2. Functions
3. Tips
4. Shortcuts
5. The Assembler.Disassembler
6. ARexx port and how to use
7. Rules for string entering
8. Bugs
9. The future
A. Virtual Reality Disk Editing Feature
B. Copyrights and Stuff
C. Anything else I Think of
(To get to a chapter search for Chapter.Id, eg Chapter.A)
(or page down madly)
* Chapter.1 Overview *
*--------------------------------------------------------------------*
I wrote Deluxe Editor because I'm a masochist, or was that the other
thing?. Oh yeah I remember, Start again, I wrote Deluxe Editor because I
wanted the following features.
1. (The main one) A BootBlock Checksum Calculator that worked.
2. The ability to use the same editor to edit files and disks.
3. A search that worked with mixed Ascii and Hex strings.
4. A search and replace.
5. The ability to use scripts for doing 'Standard' disk edits ;-).
6. A disassembler and Assembler.
7. And something to show people at the April 92 Anarchy party that didn't
have vectors/copper bars/starfields (well not yet anyway)
(As for number 7. it came and went and so did the Digital Party in October)
(and I still haven't released it)
So Deluxe Editor was born, at this point Most of the features are written
and working Ok. (Three days into the project) and hopefully by the time you
are reading this they will all be in, Dream On. I hope DEdit is useful to you
and doesn't try to fill a gap thats already filled, I have only ever used
NewZAP 3.3 and DiskX 2.2a (Bootchecksums?) and got fed up of switching between
the two editors. I have tried to make the program size in line with NewZap
and DiskX but not lose any of the features and so far I have suceeded.
I have cheated slightly and put the help texts in a different file but since
neither DiskX or NewZap has as much Help within them I guess its Ok. Also
I have used extensively reqtools.library by Nice Francis, because it gives a
nice Wb2. look to the requesters on either Wb1 or Wb2 and I guess most people
will have it already in their LIBS: directory as PowerPacker and its support
programs use it too. And everyone I know uses PowerPacker. The program will
not work at all without reqtools.library, sorry, I might write a version
that uses it if its there or the normal AmigaDos requesters if its not, we
will see if anyone complains enough. If you do not have WB2 (Why not) or
do not have the Commercial ARexx programs you will not be able to use the
ARexx port (funnily enough) or the Mini-Assembler, Why not you ask because
the assemblers written in ARexx thats why. So if you haven't got it you
should its very useful and you will be able to use the scripting features
of DEdit and CygnusED if you have it. Thats enough overview for now I think.
* Chapter.2 Functions *
*--------------------------------------------------------------------*
Note: This program requires reqtools.library and rexxsyslib.library which
requires mathieeedoubbas.library.
Chapter.2.1 Getting Started
To load a file into Deluxe Editor at the CLI prompt type :-
DE -FILE Filename
This will load the specified file and Deluxe editor will create
a window on the Workbench screen. To make DEdit open a window on its own
custom screen type :-
DE -FILE FileName -OWN
The parameter -OWN can be anywhere after the DE and can be of
any length or case as long as its unique eg.
DE -FILE FileName -O
or
DE -FILE FileName -OwN
These all mean the same.
To use DEdit as a disk Editor just type at the CLI prompt :-
DE
and again the same rules as above for the -OWN apply.
DE -OWN
Starts DEdit Editing DF0: on a custom screen. To specify a different
Disk (dF0: - DF3:) do this, where the ? is replaced by the unit number.
DE DF?:
(this version of DEdit doesn't currently support Disks other than
3" 1/2 160 Cylinder,2 head,80 Sector 11 Blocks per sector. Although
they don't have to be AmigaDOS disks. NonDos disks are fine as long as
they conform to the above)
List of switches for Deluxe Editor
-PRIORITY <NUM> ... sets the task priority
-OWN ... Makes DE use a custom screen
-FILE <FILENAME> ... Edits a file instead of a disk
DFx: ... Disk Edit a different disk
Chapter.1.2 - Getting out of DEdit.
When in Deluxe Editor and not in any requesters Type Amiga-Q or
select Quit from the Program menu. DEdit will NOT automatically save any
changes you must do that before quitting.
Chapter.1.3 - Moving around within DEdit.
The menus are normal intuition menus and can be accessed either with
right mouse button (RMB) or in some cases Shortcut keys. (Amiga + Another
key). To move around the file/disk use Either the menu Selection or press
one of the following.
To move Back 1 512 block........................................Amiga ,
To move Back 11 512 Blocks (Sector).............................Amiga <
To move forward 1 512 block.....................................Amiga .
To move forward 11 512 blocks...................................Amiga >
To goto block 0 (bootblock in disks/Start of file in files).....Amiga 0
To goto the Root Block (Disks Block 880)........................Amiga R
To goto a specified block (either in hex or decimal)............Amiga G
To edit the other half of the block.............................Amiga H
To change from View to Edit and back (toggle)...................Amiga E
To change from Hex edit to Ascii edit and back (toggle).........Amiga A
To move around within the buffer (whether Hex or Ascii Mode)....Cursor Keys
*NOTE Not the Keypad but the 4 arrow keys below DEL HELP
You may also move around in edit mode by pressing the left mouse
button with the pointer over the desired character.
All these functions have an equivalent menu item which can be accessed by
using the RMB.
Chapter.1.4 - Loading and Saving of Bootblocks (Only useful in Disk Edit)
These are a few functions designed specifically for the BootBlock which
is Block 0, if you don't understand Bootblocks too well then see Chapter D
the Bootblock is the only one which is loaded and saved as 1024 bytes which
is two blocks. To Edit the second block you must goto Block 1 by pressing
(if you are at block 0) Amiga . «« (amiga + full stop) to calculate the
bootblock Checksum press Amiga C this will recalculate the bootblock whether
it needs it or not. If the BootBlock does not start with the letters DOS or
KICK then DEdit will consider it NOT to be a bootblock and won't let you
calculate the checksum. You can restore Bootblocks from normal amigados files
these can either be ones you haved saved with DEdit or ones that you have
written and assembled yourself. Normally when you assemble a Bootblock
(SEKA users can ignore this !), an AmigaDos header is added to the front of
the file, this header is only needed for ordinary AmigaDos executables and is
not required for the bootblock, so when you select Restore bootblock from
file and select a file with a header a requester will appear telling you
that the file is not a BootBlock, this requester will allow you to search
through the file for a BootBlock which will then be saved to Blocks 0
and 1 of the Current drive, if DEdit does not find a bootblock within the
file it will say so and go back to View/Edit mode, This means that you
can search through any file for a BootBlock and if one is found it will be
written out.
Normally when you write your own bootblocks the Checksum will be invalid
this is not fixed when you restore the Bootblock but has to be done manually
by Selecting Calc Checksum from the menu or by pressing Amiga-C then by
saving the BootBlock to the current disk by selecting Restore BootBlock from
Buffer.
The library options on the Restore/Save BootBlock menus allows you
to store and recall bootblocks from a library file, there is a sample
library distributed with DEdit to use it Select Restore Bootblock from
Library, DEdit will first look in the current directory for the file
DEDit.BBlib if it doesn't find it, it then tries to open S:DEdit.BBlib
if it fails then you go back to View/Edit mode, on DEdit finding the file
Ok a requester will appear asking you to select a bootblock from the ones
available in the library. You then type the number corresponding to the
bootblock you want and it will be restored. This time the checksum should
be Ok. Unless its a virus DEdit will have Zero'ed out the checksum from
the Virus'es bootblock (this goes for the ones supplied) Zero'ing the
checksum is an OPTION when you select Save BootBlock to library. Zero'ing
the checksum stops the bootblock from booting. Effectivley disabling the
virus from booting , but be warned!! Fixing the checksum with Amiga C will
allow the BootBlock to boot ok. The viruses supplied have had the checksum
zero'ed and are there to enable DEdit to identify bootblocks, for instance
the SCA virus is in the library, if you work on a disk that has the SCA virus
on the BootBlock DEdit will say so. And the ability to add new virus'es to
the library means that more and more can be identified. I thought of only
storing virus'es as a special checksum so that they could only be identified
and not restored or making DEdit disallow any restoring of virus'es from the
library to prevent anyone passing them on vindictively, but since there are
so many virus'es anyway and so so many utilities that store/restore bootblocks
anyway I thought one more won't make any difference. I may still yet add a
feature that disallows known virus'es being restored it depends on what the
reaction is to the program in its current state.
To save a bootblock to the library select Save BootBlock to library
Give the BootBlock a Name and when the requester appears asking if its
either 1-A normal bootblock 2-A virus 3-Cancel select the appropriate
one if you select option 2 the Checksum is Zero'ed out. Also note that
this function DOES not check if the Current Block is a BootBlock or not.
So you can save and block to the library. Note that since Two blocks
(1024 bytes) are recorded in the library the block in the buffer + the next
block on the disk will be recorded !. to restore the block back to the disk
just load it into the buffer with Restore BootBlock from Library and if the
library Block you pick isn't a BootBlock a requester will appear asking you
which Block you wish to restore it to.
Example.1
Goto Block 880 -> Amiga G Type 880 or $370 or 0x370 <Return>
Select Save Bootblock to Library -> Pick from menu
A requester will appear as so
+-------------------------+
|The Current block in the |
|buffer is not a bootblock|
|do you wish to continue |
| anyway ? |
+-+--+-----------+------+-+
| |OK| |CANCEL| |
+-+--+-----------+------+-+
Select OK
Another requester appears Give the Block a name
Name Block - > Root.Block.Test <Return> (Upto 40) characters
The Block in the buffer + the next block on the DISK is saved to the
library.
*------End of example.
Chapter 1.5 The File Pull - feature
The Hunt/Mark Start/Mark End/Save menu can be used to find
DOS executables that have been stuck on a Non DOS disk ie an Intro/Trainer
etc, To use it Select 'Hunt' and the disk will be searched for a HUNK_HEADER
at the start of each disk block. If one is found the select 'Mark Start'
a requestor will appear asking if you want an automatic search or do it
manually, if you select automatic mode then IF the file found has only one
hunk then DE will move to the last block belonging to the file. After that
select 'Mark End' and then 'Save' and then a file requestor will appear
asking for a save file. If, however, the file has more than one hunk then
a requestor will appear telling you so, so you will have to find the end
of the file yourself (this will change shortly). This feature I use to
remove intros and stuff that don't work on the a500+. Use for your own
devices. Use Imploder 4 to strip off any rubbish that gets stored on the
end of a file as all files are saved in multiples of 512 bytes. AmigaDOS
files should end with 0x3f2 (HUNK_END).
* Chapter.3 - Tips *
*--------------------------------------------------------------------*
Recording the Rootblock as above is a good way to protect your disks
from some types of deliberate corruption, If the disks Root block gets
damaged you can restore it with DEdit and then use FixDisk or similar
to try and repair the disk, WARNING: Only work on a copy and Try FixDisk
or DiskDoctor?(Maybe not) or DiskSalv First. Only if the disk repair program
tells you the root block is damaged then try the above method. Also if you
have changed the contents of the disk You might get a lot of rubbish or even
worse off. But between what you can recover from the first version and the
Restored version you might get the disk Back. (This works best with disks
that you don't change ie, workbench, originals etc).
* Chapter.4 - Shortcuts (keyboard) *
*--------------------------------------------------------------------*
Amiga 1 - Help on searching
Amiga 2 - Help on editing
Amiga 3 - Help on saving
Amiga 4 - Help on shortcuts
Amiga , - Back one sector
Amiga < - Back one track
Amiga . - Forward one sector
Amiga > - Forward one track
Amiga H - Switch to other half
Amiga R - Goto root block
Amiga 0 - Goto track zero
Amiga G - Goto a specified block
Amiga S - Search
Amiga C - Calc Boot Checksum
Amiga Z - About program
Amiga N - NewShell
Amiga E/F1 - View/Edit mode toggle
Amiga A/F2 - Hex/Ascii mode toggle *
Amiga $ - Search for DOS Executable
Amiga ! - Mark start location
Amiga " - Mark end location
Amiga £ - Saved marked block to file
Amiga X - Examine/analyse bootblock
Amiga \ - Toggle DisAssembler
Amiga ; - Saved to specified sector
Amiga # - Save to current sector
Amiga ] - Save to printer
Amiga [ - Save to file
Amiga F - Fill buffer
Amiga U - Undo last change *
Amiga O - Toggle Info Requesters
Amiga Q - Quit
Arrows - Move around buffer *
* Only in [EDIT] Mode
Function key shortcuts only work in Workbench 2
* Chapter.5 - Assembler/Dis-assembler *
*--------------------------------------------------------------------*
The Assembler will only be available to you if A:You have Arexx and
B: if the file ASSEM.REXX is in your REXX: directory. Otherwise ignore all
references to the Assembler !.
The Dis-assembler is an internal part of DEdit so is always available
to use enter [EDIT] Mode and place the cursor over the Bytes you wish to
disassemble and look at the top right of the window. If the bytes at the
cursor are valid then the disassembled opcode will be shown.
So far only supports 68000. Of course if the Disassemble option on the
menu is disabled then you won't see anything !. If the bytes are invalid
then ???? will be displayed.
* Chapter.6 - Arexx Port and how to use it *
*--------------------------------------------------------------------*
Do you A:know what ARexx is ? B:have you got it? if the answer to it both
of these questions is no. then skip this. If a: and not b: then you probably
know how already and don't need too, if b: and not a: then read on. if a: and
b: then read on. too.
First things first ARexx needs to be running that is the Arexx server
has have been already run either from startup-sequence or from the CLI:
to start it type from the CLI: RexxMast <Return>
this should startup the ARexx server if not then check C= Workbench manuals
to find out that it doesn't do you any good to do that, and after that buy
a book on ARexx. you should also have a REXX: directory this is where all
your .rexx scripts are, copy the file ASSEM.REXX distributed with DEdit to
REXX: if you haven't already done so, execute install.assem.script to have
it done for you.
DEdit's arexx-portname is DeRexx you must use this to communicate
properly with DEdit.
The current commands as of version 1.3 are :-
GotoZero - reads in block 0
GotoBlock <Block> - reads in block <block>
SaveBoot <FileName> - saves the bootblocks to <filename>
ReqsOn - turns requestors on
ReqsOff - turns requestors off
CaseOn - turns case sensitive search on
CaseOff - turns case sensitive search off
Search <string> - searches from current block for <string>
DisAsmOn - turn the dis-assemble feature on
DisAsmOff - turn the dis-assemble feature off
KillDe - tells DE to quit back to AmigaDOS
* Chapter.7 - String entering conventions (How to type in strings) *
*--------------------------------------------------------------------*
Chapter 7.1 Entering a string in the search requester
To enter an Ascii only string type
Your String -> Find Me <Enter> (upto 127 chars)
To enter a Hex only string type
Your Hex Number -> $DEADBEAD <Enter> (Upto 127 chars)
or
Your Hex Number -> 0xDEADBEAD <Enter>
or
Your Hex Number -> 0xDeadBead <Enter>
or
Your Hex Number -> $DeadBEAD <Enter>
.... and so on..
To enter a Combination of Hex and Ascii Type
Your HexAscii -> $1A1b'Fred'3AB3 <Enter>
or
Your HexAscii -> 0x1a1b'Fred'3ab3 <Enter>
Any of the above can contain 'whitespace' that is space chars ,..-=+ so on
so there fore $01 02 03 04 05 = $0102030405 = 0x0102030405
and $0a,0b,0c,0d,0e = $0a0b0c0d0e = 0x0a0b0c0d0e = $0A0B0C0D0E
and $1a 1b 'FRED' 1a = $1a1b'FRED'1a = -x1a1b'FRED'1a
Case sensitivity is only valid for ASCII only strings so the string
EAT ME can be set for case insensitivity (upper=lower) but
$1a'EAT ME'1b can not be and is searched for as is.
With HexAscii strings Anything within the single quotes is searched for
but anything outside the quotes is hex only. and any non-hex will be
removed example
$1a 'Hello',1b
will become
$1a'Hello'1b
and
$1a'Hello ' 1b
will become
$1a'Hello '1b
Only HEX or ASCII can be used decimal or octal or binary has not be
introduced yet.
The string handler is quite powerful an will strip out any rubbish
passed so the hex string $1A..HELLO....1B will become $01AE1B
As you can see if you pass a odd length hex number a leading zero
will be added. so that 0x101 will become 0x0101 this is important
as if the leading zero wasnt added the bytes in memory would be
$10,10 which isn't right, with the leading zero it becomes $01,10
HexAscii strings must have the ascii portion within single quotes (')
example $0a0b Face 'Face',0a will become (as bytes)
$0a,0b,fa,ce,'F','a','c','e',0a
* Chapter.8 - Bug or Feature you decide ~! *
*--------------------------------------------------------------------*
Version 1.1 beta
Sometimes a wierd string appears after the first offset and corrupts
the text output, Note: does nothing to the buffer only to the text
like so
00000000 µµ±¤×00 92 29 12 ........
Click the left mouse button a couple of times and it will go away.
Dunno why yet might only be in WB2 , or a buffer not being zero'ed
properly. ? still its not catastrophic, funny thing is it doesnt
actually appear anywhere in the output buffers? Only on screen?.
Sometimes a disk read error appears in search because DEdit is trying
to read block past the end of the disk. Its a small thing and doesnt
actually affect the search. Wont even show if the requesters are turned
off.
Version 1.1 VR
There is a slight bug in one of the library books if you open it a
strange hypnotic pattern is released and causes temporary insanity
I can't find the book, or at least if I have I can't remember, but
I'm having fun trying. The effects of the book are caused by a
Copper 'FireWork' and only seems to happen on the ECS. ? Strange but
True.
Version 1.3
Wierd string error in 1.1 fixed (bug in lattice C)
Can select different disk to use. Fixed a couple of bugs in search
Fixed Rawkey convert for 1.3 dos.
Version 1.4
Amigados 1.3 doesnt handle RAWKEY events as 2.04....1.3 needs a <CSI>
so no arrows or rawkeys at all...Use the mouse to move around
Version 1.5
The file edit mode is a little unstable as it can add stuff onto the
end of a file.
Version 1.6
The file edit mode is less unstable but still can add stuff onto
the end of the file being edited (Will only be done if you are editing
the last block of the file)
Version 1.7
A bug crept into the search which knocked it out completely
Version 1.8
Err, the file edit..less said.. and some of the menu checkmarks
don't follow suit if you use FKeys and such...I know, I know.
* Chapter.9 - The Future ? *
*--------------------------------------------------------------------*
Currently I can't think of anything else to add to this program except
PublicScreens, commodities etc. But I'm sure people will let me know if
they want anything else, hopefully though any new features can be added
through Arexx.
* Chapter.A - Virutal Reality Disk Editing Feature *
*--------------------------------------------------------------------*
This is probably the most advanced feature of DEdit at least for now
anyway. If you have Arexx then read on else Skip it.
If you registered your copy of DEdit then you should have the file
VR.REXX copy it to your REXX: directory either with install.rexx.scripts
or the amigaDOS copy command, then launch the RexxMast program unless
you already have done so. Load DEdit with the option VR just type
DE VR <Return>
DEdit will now load in the 'Vr' mode, Virtual Reality, if you have not
already done so put on your 'Vr' helmet and get your 'VrMouse' and 'VrPen'
at the ready, walk upto the DEdit Door and open it, climb in to the control
chair and Select df0:-df3: and use the VrMouse and VrPen to select the various
icons and use DEdit just as explained above except instead of using key
shortcuts use the icons, If you look up to your right you will see the library
here is stored all the bootblocks currently available just take one open it
at the page you require and point the VrPen at it press and hold button 'A'
point the VrPen at the VrBufferView and let go button 'A', then proceed as
documented above. To exit VR get up and go out the door remembering to
close it behind you.
* Chapter.B - Copyrights And Stuff *
*--------------------------------------------------------------------*
Trademarks and Copyrights shown where I was aware one existed.
Amiga is a registered trade mark of Commodore-Amiga
AmigaDOS,Amiga Workbench,Amiga Kickstart are trademarks of Commodore-Amiga Inc
68000,68010,68020,68030,68040 are trademarks of Motorola.
CBM,Commodore,the Commodore logo are registered trademarks of Commodore
Electronics Limited.
Lattice is a trademark of SAS/Lattice.
Hisoft and Devpac are trademarks of Hisoft.
CygnusED Pro is a copyright of CygnusSoft Software & published by ASDG
Arexx copyright William S. Hawes.
I nor LSD cannot accept responsiblity for any loss or damage caused
by this document or program especially in the sanity front, nor can i
be held responsible for any damage or loss caused by Deluxe Editor or
by any actions of its programs//utilities, due to the nature of this
program and its ability to wipe out small planets in one sweep you
should only work on backups and/or know what you are doing, anyone,
who shall be now known as the party of the first part, experimenting
with monkeys or any other type of animal.vegtable.mineral, whether
or not hypothetical or not,which are now designated as the party of
the second part, which causes any damage by any means physical,mental
,impossible or impractical to the party of the first parts hardware,
software or stair carpets, which will now be known as the Target of
the party of the first parts, by the party of the second part using
Deluxe Editor which is now known as the Product of a diseased mind,
whilst the party of the second part attempting to recover,correct,
maim eat or chew the Target of the party of the first parts that
is belonging to our lent to the party of the first part. No
Responsibility can befall the author, now known as the Party
with the diseased mind, whilst the aforementioned parties whether they
be of the type rave,getting on one,warehouse,garage,sock or office and
the party of the diseased mind not being invited to the aformentioned item,
does rightly belive that if the party of the second part causes any
loss/damage to the target of the party of the first part, then its tough
luck and i hope you've got a backup (unless the target of the party of the
first part was a stair carpet or small mammal named cedric of rose)
And remember 'Don't fix it if it ain't broken'
* Chapter.C - Anything i've forgotten or not remembered *
*--------------------------------------------------------------------*
Please Fill in your own requester text in the box provided and post it to me.
+--------------------------+
| |
| |
| |
| |
+-+-----+---------+------+-+
| | | | | |
+-+-----+---------+------+-+
* Chapter.D - The hidden one *
*--------------------------------------------------------------------*
If you want to get in touch with
reqesters filled out in the style of Terry Pratchett with a hint
of Neil Gaiman
Write To :-
'Cath'
281 Moor Road
Chorley
Lancashire
England
UK
Or Pazza at the usual address. But if you do want something from him at
least send him a blank disk and SAE etc. (SAJ Self Addressed Jiffy)
REGISTRATION: Since this became and LSD product registration is no longer
an issue as the program (Deluxe Editor) is P.D. And future updates will
be provided as available to the usual sources.
Telephone me with comments about amphibians wrapped in silver paper
at 0257 270441.
Shoot the proofreader